home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue58 / System / MainForm.pas < prev   
Encoding:
Pascal/Delphi Source File  |  2000-05-06  |  3.9 KB  |  131 lines

  1. unit MainForm;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, GroupBoxEx, ComCtrls, Spin, Buttons;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     GroupBoxEx1: TGroupBoxEx;
  12.     DateTimePicker1: TDateTimePicker;
  13.     Edit1: TEdit;
  14.     Memo1: TMemo;
  15.     ListBox1: TListBox;
  16.     ComboBox1: TComboBox;
  17.     SpinEdit1: TSpinEdit;
  18.     CheckBox1: TCheckBox;
  19.     CheckBox2: TCheckBox;
  20.     CheckBox3: TCheckBox;
  21.     CheckBox4: TCheckBox;
  22.     CaptionPosCombo: TComboBox;
  23.     Label1: TLabel;
  24.     GroupBoxEx2: TGroupBoxEx;
  25.     GroupBoxEx3: TGroupBoxEx;
  26.     RadioButton1: TRadioButton;
  27.     RadioButton2: TRadioButton;
  28.     Button1: TButton;
  29.     Button2: TButton;
  30.     CheckBox5: TCheckBox;
  31.     CheckBox6: TCheckBox;
  32.     CheckBox7: TCheckBox;
  33.     procedure GroupBoxEx1EnableDisableQuery(Sender: TObject; Control: TControl;
  34.       Enabled: Boolean; var Handled: Boolean);
  35.     procedure CheckBox1Click(Sender: TObject);
  36.     procedure CheckBox3Click(Sender: TObject);
  37.     procedure CheckBox4Click(Sender: TObject);
  38.     procedure GroupBoxEx1PaintCaptionBackground(Sender: TObject;
  39.       Canvas: TCanvas; const Rect: TRect; var Handled: Boolean);
  40.     procedure FormCreate(Sender: TObject);
  41.     procedure CaptionPosComboChange(Sender: TObject);
  42.     procedure RadioButton2Click(Sender: TObject);
  43.   private
  44.     { Private declarations }
  45.   public
  46.     { Public declarations }
  47.   end;
  48.  
  49. var
  50.   Form1: TForm1;
  51.  
  52. implementation
  53.  
  54. {$R *.DFM}
  55.  
  56. procedure PaintGradient (ACanvas: TCanvas; ARect: TRect; StartColor, EndColor: LongInt);
  57. var
  58.     Idx: Integer;
  59.     sr, sg, sb, er, eg, eb: Byte;
  60. begin
  61.     sr := GetRValue (StartColor);
  62.     sg := GetGValue (StartColor);
  63.     sb := GetBValue (StartColor);
  64.  
  65.     er := GetRValue (EndColor);
  66.     eg := GetGValue (EndColor);
  67.     eb := GetBValue (EndColor);
  68.  
  69.     with ACanvas do for Idx := 0 to 31 do begin
  70.         Brush.Color := RGB (sr + MulDiv (Idx, er - sr, 31), sg + MulDiv (Idx, eg - sg, 31), sb + MulDiv (Idx, eb - sb, 31));
  71.         ACanvas.FillRect (Rect (ARect.Left, ARect.Top + MulDiv (Idx, ARect.Bottom - ARect.Top, 32),
  72.                                 ARect.Right, ARect.Top + MulDiv (Idx + 1, ARect.Bottom - ARect.Top, 32)));
  73.     end;
  74. end;
  75.  
  76. procedure TForm1.GroupBoxEx1EnableDisableQuery(Sender: TObject; Control: TControl; Enabled: Boolean; var Handled: Boolean);
  77. begin
  78.     if Control.ClassName = 'TSpinEdit' then begin
  79.         if Enabled then TSpinEdit (Control).Color := clWindow
  80.         else TSpinEdit (Control).Color := clBtnFace;
  81.         Handled := True;
  82.     end;
  83. end;
  84.  
  85. procedure TForm1.CheckBox1Click(Sender: TObject);
  86. begin
  87.     GroupBoxEx1.Enabled := CheckBox1.Checked;
  88. end;
  89.  
  90. procedure TForm1.CheckBox3Click(Sender: TObject);
  91. begin
  92.     GroupBoxEx1.Advanced.CaptionSpaces := CheckBox3.Checked;
  93. end;
  94.  
  95. procedure TForm1.CheckBox4Click(Sender: TObject);
  96. begin
  97.     GroupBoxEx1.Advanced.ShowBorder := CheckBox4.Checked;
  98. end;
  99.  
  100. procedure TForm1.GroupBoxEx1PaintCaptionBackground (Sender: TObject; Canvas: TCanvas; const Rect: TRect; var Handled: Boolean);
  101. begin
  102.     // Only add cool effects for enabled group boxes
  103.     if TGroupBoxEx (Sender).Enabled then begin
  104.         PaintGradient (Canvas, Rect, ColorToRGB (clWhite), ColorToRGB (clYellow));
  105.         Handled := True;
  106.     end;
  107. end;
  108.  
  109. procedure TForm1.FormCreate(Sender: TObject);
  110. begin
  111.     CaptionPosCombo.ItemIndex := 0;
  112. end;
  113.  
  114. procedure TForm1.CaptionPosComboChange(Sender: TObject);
  115. begin
  116.     GroupBoxEx1.Advanced.CaptionPos := TGroupBoxCaptionPos (CaptionPosCombo.ItemIndex);
  117. end;
  118.  
  119. procedure TForm1.RadioButton2Click(Sender: TObject);
  120. begin
  121.     GroupBoxEx2.Enabled := Sender = RadioButton2;
  122.     GroupBoxEx3.Enabled := Sender = RadioButton1;
  123. end;
  124.  
  125. end.
  126.  
  127. procedure TForm1.PaintBox1Paint(Sender: TObject);
  128. begin
  129.     PaintGradient (PaintBox1.Canvas, PaintBox1.ClientRect, ColorToRGB (clWhite), ColorToRGB (clYellow));
  130. end;
  131.